package de.tud.binpacking.heuristic.construction;

import de.tud.binpacking.data.Solution;
import de.tud.binpacking.instance.Instance;

public abstract class AStartHeuristic implements Runnable {
	
	protected Instance instance;
	protected Solution solution;
	
	public AStartHeuristic (Instance instance){
		this.instance = instance;
		solution = new Solution();
	}
	
	@SuppressWarnings("unused")
	private AStartHeuristic () { }
	
	@Override
	public void run() {
		findSolution();
	}
	
	public Instance getInstance(){
		return instance;
	}
	
	public abstract String toString();
	
	public Solution getSolution(){
		return this.solution;
	}

	protected abstract boolean findSolution();
}
